package com.liyunc.demo.detect.service;

import org.bytedeco.javacpp.opencv_core;
import org.bytedeco.javacv.Frame;


import static org.bytedeco.javacpp.opencv_core.CV_8UC1;

/**
 * 检测工具通用接口.
 */
public interface DetectService {

    /**
     * 根据传入的MAT构造相同尺寸的MAT，存放灰度图片用于以后的检测.
     *
     * @param src 原始图片尺寸
     * @return 相同尺寸的灰度图片的MAT对象
     */
    static opencv_core.Mat buildGrayImage(opencv_core.Mat src) {
        return new opencv_core.Mat(src.rows(), src.cols(), CV_8UC1);
    }

    /**
     * 初始化操作，例如模型下载.
     */
    void init() throws Exception;

    /**
     * 得到原始帧，做识别.
     */
    Frame convert(Frame frame);

    /**
     * 释放资源.
     */
    void releaseResource();

}
